package org.example.pojo;

import lombok.Data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 动态域类型
 */
@Data
public class BOM {
    /**
     * 类名
     */

    private String className;
    /**
     * 描述
     */
    private String Description;
    /**
     * 属性列表
     */
    private List<Member> members = new ArrayList<Member>();

    private Map<String,Member> membersMap = new HashMap<String,Member>();

    public void addMembers(Member member) {
        members.add(member);
    }

    public void putMembersMap(Member member) {
        membersMap.put(member.getCode(),member);
    }

    /**
     * 重写equals方法,如果动态域英文描述相同,则认为是同一个对象
     *
     * @param o
     * @return
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        BOM bom = (BOM) o;
        return className.equals(bom.className);
    }

}
